// axios处理:  1.设置环境变量(配置接口及地址)  2.封装request(请求拦截与响应拦截)

// 设置环境变量(配置接口及地址)
// 开发环境  根目录.env.development    设置变量 VUE_APP_变量名=值

// 生产环境   根目录.env.production    设置变量 VUE_APP_变量名=值
// 读取相应得值  process.env.VUE_APP_变量名===值

/*
封装request(请求拦截与响应拦截)
1:安装axios   npm i axios
2:导入axios  import axios from 'axios'
3:创建axios副本
   const _axios=axios.create({
       baseURL:process.env.VUE_APP_URL,
       timeout:5000
   })
4:axios副本的拦截器
   请求拦截
     _axios.interceptors.request.use((config)=>{return config},(error)=>{
         return Promise.reject(error)
     })
   响应拦截
     _axios.interceptors.response.use((res)=>{ return res},(error)=>{
         return Promise.reject(error)
     })
5:暴露axios副本
export default _axios
*/
import axios from 'axios'

const _axios = axios.create({
  baseUrl: process.env.VUE_APP_URL,
  timeout: 5000
})
// 请求拦截
_axios.interceptors.request.use(
  config => {
    return config
  },
  error => {
    return Promise.reject(error)
  }
)
// 相应拦截
_axios.interceptors.response.use(
  res => {
    return res.data
  },
  error => {
    return Promise.reject(error)
  }
)
// axios再次包装
function _ajax (url, params = {}, method = 'get') {
  const _key = method.toLowerCase() === 'get' ? 'params' : 'data'
  return _axios({
    url,
    method,
    [_key]: params
  })
}
export default _axios
